Jakarta Persistence
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
top
La Java Persistence API (abrΓ©gΓ©e en JPA), est une interface de programmation Java permettant aux dΓ©veloppeurs d'organiser des donnΓ©es relationnelles dans des applications utilisant la plateforme Java.
La Java Persistence API est Γ l'origine issue du travail du groupe d'experts JSR 220.
La persistance dans ce contexte recouvre trois zones :
β’ le langage Java Persistence Query (JPQL) ;
β’ l'objet/les mΓ©tadonnΓ©es relationnelles.
Contents
β’ SpΓ©cificitΓ©s
β’ Voir aussi
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
SpΓ©cificitΓ©s
La Java Persistence API repose essentiellement sur l'utilisation des annotations, introduites dans Java 5. Elles permettent de dΓ©finir facilement des objets mΓ©tier, qui pourront servir d'interface entre la base de donnΓ©es et l'application, dans le cadre d'un mapping objet-relationnel.
Par exemple, cette classe traduit une relation "Compte" dans une base de donnΓ©es SQL :
package org.foo.models.auth;
import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;
@Entity
@Table(name = "compte")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Compte.findAll", query = "SELECT a FROM Compte a"),
@NamedQuery(name = "Compte.findByLogin", query = "SELECT a FROM Compte a WHERE a.login = :login"),
@NamedQuery(name = "Compte.findByEmail", query = "SELECT a FROM Compte a WHERE a.email = :email")})
public class Compte implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "login")
private String login;
@Basic(optional = false)
@Column(name = "password")
private String password;
@Basic(optional = false)
@Column(name = "email")
private String email;
@JoinColumn(name = "typeProfil", referencedColumnName = "idProfil")
@ManyToOne(optional = false)
private Profil typeProfil;
public Compte() {
}
public Compte(String login) {
this.login = login;
}
public Compte(String login, String password, String email) {
this.login = login;
this.password = password;
this.email = email;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Profil getTypeProfil() {
return typeProfil;
}
public void setTypeProfil(Profil typeProfil) {
this.typeProfil = typeProfil;
}
}
Dans l'application, il devient alors facile d'ajouter, modifier et supprimer des donnΓ©es, en passant par des gestionnaires d'entitΓ©s, fournis par l'API.
Voir aussi
Articles connexes
RΓ©fΓ©rences externes
β’ (en) https://jakarta.ee/specifications/persistence/
β’ (en) EJB 3.0
β’ (en) EJB 2.0
β’ (en) EJB 2.1
β’ (en) Java Persistence API Javadoc
β’ Portail de la programmation informatique